JBInsTrace: A tracer of Java and JRE classes at basic-block granularity by dynamically instrumenting bytecode
نویسندگان
چکیده
Understanding what happens during the runtime of a Java program is difficult. Tracking runtime flow can bring valuable information for program understanding and behavior analysis. Polymorphism, thread concurrency or even simple facts like the number of method invocations and the number of executed bytecodes are valuable information to track, but are difficult to compute outside the Java Virtual Machine (JVM) on running programs. In this paper, we present JBInsTrace, a new tool that instruments and traces Java bytecode. It produces static information about source code and a very fine grained trace of Java software execution, combining them to allow detailed analysis of the runtime. Our tool differs from others because it does not only trace program classes but also JRE classes, and does so at basic block level, without altering the JVM and without statically modifying class files. We explain JBInsTrace design, focused towards efficiency, which results in reasonable performance penalty.
منابع مشابه
BIT: A Tool for Instrumenting Java Bytecodes
BIT (Bytecode Instrumenting Tool) is a collection of Java classes that allow one to build customized tools to instrument Java Virtual Machine (JVM) bytecodes. Because understanding program behavior is an essential part of developing effective optimization algorithms, researchers and software developers have built numerous tools that carry out program analysis. Although there are existing tools ...
متن کاملBytecode Instrumentation as an Aid in Understanding the Behavior of Java Persistent Stores
In this paper, we describe the use of BIT (Bytecode Instrumenting Tool) as an aid in understanding the behavior of persistent Java programs and evaluating the implementation of Java persistent stores. BIT is a set of Java classes that allow a user to build customized tools to instrument Java Virtual Machine (JVM) bytecodes. We built a customized tool using BIT to instrument Object Design Inc.’s...
متن کاملProfBuilder: A Package for Rapidly Building Java Execution Profilers
ProfBuilder is a collection of Java classes that provide an easy method for constructing Java execution profiling tools. By instrumenting Java bytecode, a programmer can measure dynamic properties of an application, such as bytecode count, number of memory allocations, cache misses and branches. ProfBuilder provides an easy way to create customized tools to measure these and other properties by...
متن کاملModel-Based Schedulability Analysis of Real-Time Systems
BasicBlock SimpleBasicBlock BranchingBasicBlock EmptyBasicBlock IfBasicBlock LoopBasicBlock MethodCallingBasicBlock MonitorEnterBasicBlock MonitorExitBasicBlock SporadicInvokeBasicBlock Figure 9.3: Basic block hierarchy AbstractBasicBlock has a WCET attribute, denoting the execution time of the Java bytecode the block represents. This is used in the schedu-BasicBlock has a WCET attribute, denot...
متن کاملByCounter: Portable Runtime Counting of Bytecode Instructions and Method Invocations
For bytecode-based applications, runtime instruction counts can be used as a platform-independent application execution metric, and also can serve as the basis for bytecode-based performance prediction. However, different instruction types have different execution durations, so they must be counted separately, and method invocations should be identified and counted because of their substantial ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 79 شماره
صفحات -
تاریخ انتشار 2014